Introduction
Thisbookpresentsthetechnologiesandbestpracticesthatspanacrossallof
thelayersofasoftwaredevelopmentarchitecture.Thecoreofthisbookfocuses
on specific JavaScript frameworks used to implement each architectural layer.
Everything is based on MongoDB, Express, React, React Native and Node. I
will walk you through the design and development of a sample application to
teachyouthebestpracticesinarchitecting,coding,testing,securing,deploying
andmanagingaRESTfulWebServiceandSPA(SinglePageApplication).
Thisintroductionsectionwilldefineseveralkeyterms,andintroduceyouto
thesampleapplication.Thisisimportantcontentthatyouwillneedbeforeyou
divedeeperintothematerialspresentedintherestofthebook.
Whatisadevelopmentstack?
Adevelopmentstackisthecollectionoflanguagesandtechnologiesusedto
constructthesoftwareapplication.Thesearethetechnologiesyouwouldpiece
togetherfrombottomtotop.Thisisdifferentfromwhatasoftwarearchitecture
is.Anarchitectureisapatternofcomponentsandlayersforbuildingsoftware.
This book utilizes a particularly popular set of technologies referred to as the
MERN (MongoDB, Express.JS, React and Node.js) development stack. The
architecturepatternfollowedisreferredtoasaSOAthree-tierarchitecture.
MongoDB, Express.JS, React and Node.js are called platforms, or
frameworks,becausetheytakecode,orsomeformofmarkup/configurationand
executeitatahigherlevelofabstractionabovetheoperatingsystemlevel.
TheMERNstackonlyspecifiesfourtechnologies.However,inreality,there
aremanymoretechnologiesthatcomeintoplay.Node.jsasaframeworkreally
gets its capabilities from modular plug-ins that extend its basic capabilities.
Platforms are usually extensible, meaning they are built to be extended in
functionalityby others inthe community thatprovide modules. Youwilllearn
about many of the important extensions that can be utilized to extend the
capabilitiesofNode.js,ExpressandReact.
Note: AWS does have database services such as DynamoDB, a NoSQL
databasetechnology.I havechosento develop withMongoDB instead. Thisis
becauseofitsrichsetofcapabilitiesanditspopularity.MongoDBisstillhosted
inAWSasaPaaSservice,eventhoughitisnotprovideddirectlybyAWS.